package com.huazai.service;

import com.huazai.bean.po.User;

import java.util.List;

/**
 * @author EZTTU
 */
public interface UserService {
    /**
     * 登陆验证
     * select语句
     * 可以在传入参数仅仅为userID的时候用来验证用户名是否唯一
     * 也可以用来验证用户是否存在
     *
     * @param user 传入的用户信息
     * @return 登录结果
     */
    String validateLogin(User user);

    /**
     * 用户注册
     * insert语句
     * insert前首先确定是否有相同的user存在
     *
     * @param user
     * @return 注册结果
     */
    String userRegistration(User user);

    /**
     * 激活账户的dao
     *
     * @param activeCode 用户激活码，唯一！！！
     * @return 激活结果
     */
    Boolean activateUser(String activeCode);

    /**
     * 该接口用来处理删除用户的业务
     * 需要注意的是，如果后期加了购物车的表，那么如果用户删除了，
     * 那么跟着这个用户一起的购物车应该也要删掉。
     *
     * @param email 要删除的用户的邮箱。
     * @return 删除结果
     */
    Boolean deleteUserByEmail(String email);

    /**
     * 获的用户的列表
     *
     * @param userName 可能会被查询的用户名，如果缺省时将会查询全部。
     * @return 查询到的用户。
     */
    List<User> getUserCustom(String userName, String email);

    /**
     * 根据用户名获取用户
     * @param userName 要获取的用户名
     * @return 得到的用户列表
     */
    List<User> getUserByName(String userName);

    /**
     * 更新用户数据
     * @param user 传入的用户数据
     * @return 更新是否成功
     */
    Boolean updateUserMessage(User user);
}
